package com.kuaiyin.enums;

import lombok.Getter;

@Getter
public enum BizCodeEnum {
    /**
     * 登录相关
     */
    LOGIN_USERNAME_OR_PASSWORD_ERROR(10001, "用户名或密码错误"),
    LOGIN_USERNAME_EMPTY(10002, "用户名不能为空"),
    LOGIN_PASSWORD_EMPTY(10003, "密码不能为空"),
    LOGIN_USER_EXISTS(10004, "用户名已存在"),
    LOGIN_USER_FROZEN(10005, "用户已冻结"),
    LOGIN_CAPTCHA_EXPIRED(10006, "验证码不存在或已过期"),
    LOGIN_CAPTCHA_MISMATCH(10007, "验证码错误"),
    LOGIN_USER_NOT_EXIST(0, "用户不存在"),
    /*
     *  用户注册相关
     */
    USER_REGISTER_EMAIL_EMPTY(1001, "邮箱不能为空"),
    USER_REGISTER_USERNAME_EMPTY(1002, "用户名不能为空"),
    USER_REGISTER_PASSWORD_EMPTY(1003, "密码不能为空"),
    USER_REGISTER_PHONE_EMPTY(1004, "手机号不能为空"),
    USER_REGISTER_DEPARTMENT_EMPTY(1005, "部门不能为空"),
    USER_REGISTER_USERNAME_EXISTS(2001, "用户名已存在"),
    USER_REGISTER_PHONE_EXISTS(2002, "手机号已存在"),
    USER_REGISTER_EMAIL_EXISTS(2003, "邮箱已存在"),

    /**
     * 部门相关
     */
    DEPARTMENT_NAME_EXISTS(11002, "部门名称已存在"),
    DEPARTMENT_HAS_USERS_CANNOT_DELETE(11001, "部门下存在用户，不能删除"),

    /*
    * 环境变量相关
    */
    ENVIRONMENT_VAR_EXIST_IN_CACHE(41001, "缓存中已存在该变量名"),
    ENVIRONMENT_VAR_NAME_EXISTS(41002, "变量名称已存在"),

    /**
     * 测试用例相关
     */
    TEST_CASE_ID_NOT_EXIST(21001, "测试用例不存在"),
    TEST_CASE_NAME_EXISTS(21002, "用例名称已存在"),
    TEST_CASE_REQUEST_NOT_EXIST(21003, "关联的请求不存在"),
    TEST_CASE_NAME_DUPLICATED(21004, "测试名称已存在"),
    TEST_CASE_REQUEST_NOT_FOUND(21005, "关联的请求不存在"),
    TEST_CASE_NOT_EXIST_OR_DISABLED(21006, "测试用例不存在或已被禁用"),

    /**
     * 压测相关
     */
    STRESS_MODULE_ID_NOT_EXIST(260001, "模块id不存在"),
    STRESS_CASE_ID_NOT_EXIST(260002, "压测用例id不存在"),
    STRESS_UNSUPPORTED(260005, "不支持的压测类型"),
    STRESS_ASSERTION_UNSUPPORTED_ACTION(260007, "不支持的断言动作"),
    STRESS_ASSERTION_UNSUPPORTED_FROM(260008, "不支持的断言来源"),
    JMETER_EXECUTE_ERROR(260009,"JMeter执行错误"),
    INVALID_PARAMETER(260010, "提供的 jmxContent 不是有效的 JMeter 测试计划内容");



    private final int code;
    private final String message;

    BizCodeEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }
}
